<?php

class SON_Forms_Resultado extends Zend_Form
{
    public function init()
    {
        $this->setMethod('post');
        
        $id = new Zend_Form_Element_Hidden('id');
        $id->addFilter('Int');
        $this->addElement($id);
    
        $descricao = new Zend_Form_Element_Text('descricao');
        $descricao->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty', true, array('messages' => 'Informe um resultado'))
            ->addValidator('Db_NoRecordExists', false, array('table' => 'resultado', 'field' => 'descricao', 'messages' => 'Resultado já cadastrado'))
            ->setAttrib('class', 'form-control')
            ->setAttrib('placeholder', 'Resultado')
        	->setAttrib('required', 'required');
        $this->addElement($descricao);
    
        $id->removeDecorator('HtmlTag')->removeDecorator('Label')->removeDecorator('Errors');
        $descricao->removeDecorator('HtmlTag')->removeDecorator('Label')->removeDecorator('Errors');
    }
    
    public function setAsEditForm(array $data)
    {
        $this->populate($data);
        
        $this->getElement('descricao')
            ->getValidator('Db_NoRecordExists')
            ->setExclude(array('field' => 'id', 'value' => $data['id']));
        
        return $this;
    }
}